package com.neu.utils;

import java.security.PrivateKey;
import java.security.PublicKey;

public class JWTTest {

    // 定义公钥保存的路径
    private static final String pubKeyPath = "E:\\rsa\\rsa.pub";

    // 定义私钥保存的路径
    private static final String priKeyPath = "E:\\rsa\\rsa.pri";

    // 声明一个公钥，用于接收
    private PublicKey publicKey;

    // 声明一个私钥，用于接收
    private PrivateKey privateKey;


    public void main(String[] args) throws Exception {
        // 生成公钥和私钥，并指定路径写入文件当中
        RSAUtil.generateKey(pubKeyPath, priKeyPath, "abc");

        // 从写入的文件中获取公钥
        this.publicKey = RSAUtil.getPublicKey(pubKeyPath);
        // 从写入的文件中获取私钥
        this.privateKey = RSAUtil.getPrivateKey(priKeyPath);

        // 生成Token，指定原始信息，私钥，过期时间
        String token = JWTUtil.generateToken("ZHANGSAN",privateKey,2);
        System.out.println(token);

        // 从token中获取原始的信息，例如原来是一张图片的内存地址，转换成token，然后现在又通过token转换回原来的内存地址的字符串形式
        // 简单说就是通过公钥解析用私钥生成的token
        String oriInfo = JWTUtil.getInfoFromToken(token,publicKey);
        System.out.println(oriInfo);
    }
}